package com.jhgsys.internal.peccancy.service;

import com.jhgsys.internal.peccancy.entity.PeccancyClauseRule;
import com.jhgsys.internal.common.entity.QueryRequest;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * 违章条款奖惩规则 Service接口
 *
 * @author admin
 * @date 2024-08-08 13:20:28
 */
public interface IPeccancyClauseRuleService extends IService<PeccancyClauseRule> {
    /**
     * 查询（分页）
     * @author admin
     * @date 2024-08-08 13:20:28
     * @param request QueryRequest
     * @param peccancyClauseRule peccancyClauseRule
     * @return IPage<PeccancyClauseRule>
     */
    IPage<PeccancyClauseRule> findPeccancyClauseRulePage(QueryRequest request, PeccancyClauseRule peccancyClauseRule);

    /**
     * 查询（所有）
     * @author admin
     * @date 2024-08-08 13:20:28
     * @param peccancyClauseRule peccancyClauseRule
     * @return List<PeccancyClauseRule>
     */
    List<PeccancyClauseRule> findPeccancyClauseRuleList(PeccancyClauseRule peccancyClauseRule);

    /**
    * 根据ID查询
    * @author admin
    * @date 2024-08-08 13:20:28
    * @param id
    * @return PeccancyClauseRule
    */
    PeccancyClauseRule findPeccancyClauseRuleById(String id);

    /**
     * 新增
     * @author admin
     * @date 2024-08-08 13:20:28
     * @param peccancyClauseRule peccancyClauseRule
     */
    void createPeccancyClauseRule(PeccancyClauseRule peccancyClauseRule);

    /**
     * 修改
     * @author admin
     * @date 2024-08-08 13:20:28
     * @param peccancyClauseRule peccancyClauseRule
     */
    void updatePeccancyClauseRule(PeccancyClauseRule peccancyClauseRule);

    /**
     * 逻辑删除
     * @author admin
     * @date 2024-08-08 13:20:28
     * @param peccancyClauseRule peccancyClauseRule
     * @param peccancyClauseRuleIds peccancyClauseRuleIds
     */
    void deletePeccancyClauseRule(PeccancyClauseRule peccancyClauseRule,String peccancyClauseRuleIds);

    /**
    * 物理删除
    * @author admin
    * @date 2024-08-08 13:20:28
    * @param peccancyClauseRuleIds peccancyClauseRuleIds
    */
    void physicallyDeletePeccancyClauseRule(String peccancyClauseRuleIds);
}
